One or more aspects of the invention relate generally to testing a packet sequence number checker. Further, one or more aspects of the invention relate to an error injector for testing a packet sequence number checker, a method, a computing system, a data processing program, and a computer program product.
New electronic systems, in particular digital chips like a System-on-a-Chip (SoC), or a communication between two chips or systems, are typically designed by using software tools. These allow designing, simulating and testing the functionality before the chips are built as a semiconductor device. Typically, a hardware description language or hardware design language (HDL) is used. Producing the actual chips is very expensive. Therefore, intensive testing of the design is required. Typically, simulation-based verification is used for this purpose and a verification of error scenarios is essential to quantify the correctness of the hardware design. One of the important error scenarios are data packet sequence number failures between communicating devices, i.e., packets may come out of order or packets may be lost and sequence numbers may be missing.
In, e.g., communication protocols based on the Peripheral Component Interconnect Express (PCIE) or other I/O protocols, a cyclic redundancy code (CRC) check is performed before a packet sequence number is evaluated as part of the communication protocol. A communication simulation in which a CRC check has to be performed as part of the simulation for every simulated data packet exchange is very compute intensive. Additionally, current communication simulation solutions require some knowledge about the underlying communication protocol.
A couple of published documents address the topic of communicating devices. Document U.S. Pat. No. 8,411,560 B2, incorporated by reference herein in its entirety, discloses a method for detection and the transmission of lost packets for a reliable communication over a network.
Document U.S. Pat. No. 8,385,366 B2, incorporated by reference herein in its entirety, discloses in the context of packet-oriented data transmission via a network an apparatus for transmitting a sequence of data packets that checks whether a packet is missing or faulty. In this case, a replacement packet is provided which is a valid packet with regard to a packet syntax.